package cn.com.header.zbpk.base.service;

import cn.com.header.zbpk.base.entity.Subject;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Optional;
import java.util.Set;

/**
 * 学科服务接口
 *
 * @author Yuanyifeng
 * @date 2017-11-21
 * @time 17:37
 */
public interface ISubjectService {
    /**
     * 学段列表查询
     *
     * @param subject 学段查询条件对象
     * @param nameLikeMode 根据学段名模糊查询
     * @param fields 查询字段集合
     * @return
     */
    List<Subject> loads(
            @Param("subject") Subject subject,
            @Param("nameLikeMode") boolean nameLikeMode,
            @Param("fields") Set<String> fields
    );

    /**
     * 根据ID查询学科信息
     * @param id
     * @param fields
     * @return
     */
    Optional<Subject> loadBy(Long id, Set<String> fields);

}
